嗨嗨~大家好啊
我們慢慢地要進入物件導向的部分啦~
在學習物件導向前我們要先簡單的介紹一下
在早期物件導向(Object Oriented)觀念未成熟之前,軟體開發大都使用程序導向(Procedure Oriented)的觀念來設計程式。
程序導向主要是採 Divide-and-Conquer來解決問題。將大問題分割成許多小問題,若小問題還是很複雜,那就再分割。若將這些小問題處理後,大問題不就解決了嗎?由於程序導向將資料和所使用的程序分開思考,程式取得資料,經處理後再將資料回存,資料是被動的,如果當程式需求越來越大時,資料和方法間相依的複雜度增加,導致程式的整合、維護和擴充的難度都會增加。所以程序導向初期開發數度快速,但越到開發後期,開發數度會因此減緩。
物件導向是另一種程式設計方法,是將資料和方法一併思考並彼此封裝在一起,成為一個物件。換句話說,他按照人類真實的想法來分析和解決問題,不需要經過任何轉換就可以讓我們更容易於瞭解和設計程式。
那甚麼是物件呢?在現實世界中,物件就是東西、物體。如:人是物件、車是物件,每個物件都有其對應的特徵跟行為,所以物件導向必須先對物件的特徵跟行為加以分類,物件特徵以屬性來描述,物件行為以方法(Methods)描述,並用程式碼來加以模擬吽。所以物件就是指具有屬性和方法的資料,傳統資料只有屬性沒有方法,那構成物件的要素有哪些呢?
再來說說啥是類別?
類別(class)是用來物件做分門別類,以數學角度來看類別就像是一個集合。所以類別是一群具有相同性質物件的集合。類別是一種設計的方法,相當於一個模板(template),物件就是根據類別的設計方法所製作出來的成品。由此可知,類別本身並不是實際的物件,類別是用來定義物件的結構,也就是用來描述這些類似物件的屬性和方法,而物件是只可使用的類別執行個體。
從程式設計的觀點看,類別只是一種抽象的資料型別,而物件則是屬於該種資料型別的實體變數。如:C#的int可以看做是整數類別,卻無法直接用int類別來做加減運算(方法),例如:
int A; //宣告變數A是整數
int B; //宣告變數B是整數
A = 10; //正確
B = A + 5; //正確
int = 20; //錯誤
由上面的程式片段得知:類別(class)可透過宣告來衍生出物件(A&B),但類別本身卻不是物件,也不可用來執行。假設腳踏車物件跟摩托車物件都是同一類別(車子)衍生來的,但卻代表不同個體。
好啦,今天的文章就到這邊告一段落啦~
明天就進入物件導向了!
大家加油~
掰掰~